package main

import "fmt"

func main() {
	//第五章：go语言函数
	//定义匿名函数
	//匿名函数是指不需要定义函数名的一种函数实现方式
	//匿名函数的优点是可以直接使用函数内的变量，不必申明
	//匿名函数的缺点是可读性差，一般用于实现回调函数和闭包
	//匿名函数的语法格式：
	//func(参数列表)(返回参数列表){
	//	函数体
	//}
	//匿名函数的调用方式：
	//f:=func(参数列表)(返回参数列表){
	//	函数体
	//}

	result := func(a, b int) int {
		return a + b
	}(1, 2)
	fmt.Println("result=", result)

	//定义一个匿名函数，赋值给变量f
	f := func(a, b int) int {
		return a + b
	}
	//通过变量f调用匿名函数
	result2 := f(10, 20)
	fmt.Println("result2=", result2)
	result3 := func(a, b int) int {
		return a + b
	}
	fmt.Printf("result3的类型是%T\n", result3)
	fmt.Println("result3=", result3(11, 22))
}
